/*
 * Copyright (c) 1994, 2008, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package java.io;


/**
 * 表示尝试打开由指定路径名表示的文件失败。
 *
 * <p> 当具有指定路径名的文件不存在时，{@link java.io.FileInputStream}、
 * {@link java.io.FileOutputStream}和{@link java.io.RandomAccessFile}构造方法将抛出此异常。
 * 如果文件确实存在但由于某种原因无法访问，例如尝试以写入方式打开只读文件，这些构造方法也会抛出此异常。
 *
 * @author  未署名
 * @since   JDK1.0
 */

public class FileNotFoundException extends IOException {
    private static final long serialVersionUID = -897856973823710492L;

    /**
     * 构造一个<code>FileNotFoundException</code>，
     * 以<code>null</code>作为其错误详细消息。
     */
    public FileNotFoundException() {
        super();
    }

    /**
     * 构造一个具有指定详细消息的<code>FileNotFoundException</code>。
     * 字符串<code>s</code>可以稍后通过<code>java.lang.Throwable</code>
     * 类的<code>{@link java.lang.Throwable#getMessage}</code>方法检索。
     *
     * @param   s   详细消息。
     */
    public FileNotFoundException(String s) {
        super(s);
    }

    /**
     * 构造一个<code>FileNotFoundException</code>，其详细消息由给定的路径名字符串
     * 后跟给定的原因字符串组成。如果<code>reason</code>参数为<code>null</code>，
     * 则将其省略。此私有构造函数仅由本机I/O方法调用。
     *
     * @since 1.2
     */
    private FileNotFoundException(String path, String reason) {
        super(path + ((reason == null)
                      ? ""
                      : " (" + reason + ")"));
    }

}
